Method for storing parity information in a disk array storage system

ABSTRACT

An improved disk array storage system shared by first and second processing nodes is comprised of N+2 disks wherein N disk drives are used to store data, and two additional disk drives are provided for the storage of parity information. Data to be saved is divided into portions consisting of one or many blocks of data for storage among the disks. Corresponding parity information, comprised of first and second components, is written to the two dedicated parity disk drives. The first processing node determines the first component of parity information to be written to the first parity disk drive, and a second processing node determines the second component of parity information to be written to the second parity disk drive. The two components of parity information are determined so that the exclusive-OR combination of the first and second components is equivalent to the exclusive-OR combination of the data stored across the remaining data disk drives.

The present invention relates to disk array storage devices for computersystems and, more particularly, to an improved method for generatingparity information in a disk array storage system.

BACKGROUND OF THE INVENTION

A disk array or RAID (Redundant Array of Inexpensive Disks) storagesystem comprises two or more hard disk drives, such as the commodity 3½inch disk drives currently used in personal computers and workstations,functioning together as a single storage system. Although disk arrayproducts have been available for several years, significant improvementsin the reliability and performance of small disk drives and a decline inthe cost of such drives, together with end user requirements forincreased system storage capacity, faster access speeds, improvedreliability, and greater resistance to errors have resulted in enhancedinterest in RAID systems.

Several disk array design alternatives were first described in anarticle titled “A Case for Redundant Arrays of Inexpensive Disks (RAID)”by David A. Patterson, Garth Gibson and Randy H. Katz; University ofCalifornia Report No. UCB/CSD 87/391, December 1987. This articlediscusses disk arrays and the improvements in performance, reliability,power consumption and scalability that disk arrays provide in comparisonto single large magnetic disks. Five disk array arrangements, referredto as RAID levels, are described. The simplest array, a RAID level 1system, comprises one or more disks for storing data and an equal numberof additional “mirror” disks for storing copies of the informationwritten to the data disks. The remaining RAID levels, identified as RAIDlevel 2, 3, 4 and 5 systems, segment the data into portions for storageacross several data disks. One or more additional disks are utilized tostore error check or parity information.

In 1993, these RAID levels were formalized in the first edition of theRAIDBook, published by the RAID Advisory Board, an association ofmanufacturers and consumers of disk array storage systems. In additionto the five RAID levels described by Patterson et al., the RAID AdvisoryBoard now recognizes four additional RAID levels, including RAID level0, RAID level 6, RAID level 10 and RAID level 53.

In order to coordinate the operation of the multitude of disk or tapedrives within an array to perform read and write functions, paritygeneration and checking, and data restoration and reconstruction,complex storage management techniques are required. Array operation canbe managed through software routines executed by the host computersystem, i.e., a software array architecture, or by a dedicated hardwarecontroller constructed to control array operations.

A RAID level 4 disk array is comprised of N+1 disks wherein N disks areused to store data, and the additional disk is utilized to store parityinformation. Data to be saved is divided into portions consisting of oneor many blocks of data for storage among the disks. The correspondingparity information, which can be calculated by performing a bit-wiseexclusive-OR of corresponding portions of the data stored across the Ndata drives, is written to the dedicated parity disk. The parity disk isused to reconstruct information in the event of a disk failure. Writestypically require access to two disks, i.e., one of the N data disks andthe parity disk, as will be discussed in greater detail below. Readoperations typically need only access a single one of the N data disks,unless the data to be read exceeds the block length stored on each disk.

A RAID level 4 system including five data and parity disk drives, DRIVEA through DRIVE E is illustrated in FIG. 1. An array controller, notshown, coordinates the transfer of data between a host system and thearray disk drives. The controller also calculates and checks parityinformation. Data blocks A0 through D4 and parity blocks P0 through P4illustrate the manner in which data and parity is stored on the fivearray drives. Data blocks A0 through D4 are also identified as blocks 0through 19.

RAID level 5 disk arrays are similar to RAID level 4 systems except thatparity information, in addition to the data, is distributed across theN+1 disks in each group. Each one of the N+1 disks within the arrayincludes some blocks for storing data and some blocks for storing parityinformation. Where parity information is stored is controlled by analgorithm implemented by the user. As in RAID level 4 systems, RAIDlevel 5 writes typically require access to two disks; however, no longerdoes every write to the array require access to the same dedicatedparity disk, as in RAID level 4 systems. This feature provides theopportunity to perform concurrent write operations.

A RAID level 5 system including five data and parity disk drives, DRIVEA through DRIVE E is illustrated in FIG. 3. An array controller, notshown, coordinates the transfer of data between a host system and thearray disk drives. The controller also calculates and checks parityinformation. Data blocks A0 through E4 and parity blocks P0 through P4illustrate the manner in which data and parity is stored on the fivearray drives. Data blocks A0 through E4 are also identified as blocks 0through 19.

The relationship between the parity and data blocks in both the RAIDlevel 4 and 5 systems described above, and illustrated in FIGS. 1 and 3,respectively, is as follows:

PARITY P0=(BLOCK 0)⊕(BLOCK 1)⊕(BLOCK 2)⊕(BLOCK 3)

PARITY P1=(BLOCK 4)⊕(BLOCK 5)⊕(BLOCK 6)⊕(BLOCK 7)

PARITY P2=(BLOCK 8)⊕(BLOCK 9)⊕(BLOCK 10)⊕(BLOCK 11)

PARITY P3=(BLOCK 12)⊕(BLOCK 13)⊕(BLOCK 14)⊕(BLOCK 15)

As shown above, parity data can be calculated by performing a bit-wiseexclusive-OR of corresponding portions of the data stored across the Ndata drives. However, because each parity bit is simply the exclusive-ORproduct of all the corresponding data bits from the data drives, newparity can be more easily determined from the old data and the oldparity as well as the new data in accordance with the followingequation:

new parity=old data⊕new data⊕old parity.

Although the parity calculation for RAID levels 4 or 5 shown in theabove equation is much simpler than performing a bit-wise exclusive-ORof corresponding portions of the data stored across all of the datadrives, a typical RAID level 4 or 5 write operation will require aminimum of two disk reads and two disk writes, in addition to the stepof calculating the new parity information. This operation is referred toas a read-modify-write (RMW) operation. More than two disk reads andwrites are required for data write operations involving more than onedata block. Each individual disk read operation involves a seek androtation to the appropriate disk track and sector to be read. The seektime for all disks is therefore the maximum of the seek times of eachdisk. A RAID level 4 or 5 system thus carries a significant writepenalty when compared with a single disk storage device or with RAIDlevel 1, 2 or 3 systems.

In addition to the advantages described above for RAID storage systems,i.e., increased system storage capacity, faster access speeds, improvedreliability, RAID level 4 and 5 disk array systems also provide forconcurrent read and write operations. These storage arrangements providean increased transfer bandwidth for multiple block read and writeoperations, e.g., four consecutive blocks can be read or writtenconcurrently, and also improves the performance of small transferoperations by allowing blocks residing on separate disk drives to beaccessed in parallel.

An improved method for generating and maintaining parity information ina RAID level 4 or 5 system which reduces or eliminates the write penaltyresulting from the manner in which parity information is traditionallycalculated and maintained is desired.

OBJECTS OF THE INVENTION

It is therefore an object of the present invention to provide a new anduseful method for updating data and parity information within a diskarray.

It is another object of the present invention to provide such a methodwhich optimally executes read-modify-write procedures within RAID level4 and 5 disk arrays.

It is yet another object of the present invention to provide a new anduseful method for improving the efficiency of disk drive utilizationwithin a disk array.

It is still a further object of the present invention to provide a newand useful method for minimizing I/O service times and I/O queue waitingtimes for individual drives within a disk array.

SUMMARY OF THE INVENTION

There is provided, in accordance with the present invention, an improveddisk array storage system comprised of N+2 disks wherein N disk drivesare used to store data, and two additional disk drives are provided forthe storage of parity information. Data to be saved is divided intoportions consisting of one or many blocks of data for storage among thedisks. Corresponding parity information, comprised of first and secondcomponents, is written to the two dedicated parity disk drives. A firstparity generating mechanism is employed for calculating the firstcomponent of parity information to be written to the first parity diskdrive, and a second parity generating mechanism is employed forcalculating the second component of parity information to be written tothe second parity disk drive. The two components of parity informationare determined so that the exclusive-OR combination of the first andsecond components is equivalent to the exclusive-OR combination of thedata stored across the remaining data disk drives.

In the described system, the disk array storage system is shared byfirst and second processing nodes. The first processing node processes afirst group of processes performing updates on the data stored in thedisk array storage system and includes the first parity generatingmechanism for calculating the parity information to be maintained withinthe first parity disk drive. Similarly, the second processing nodeprocesses a second group of processes performing updates on the datastored in the disk array storage system and includes the second paritygenerating mechanism for calculating the parity information to bemaintained within the second parity disk drive.

In another embodiment of the invention, each one of the N+2 disk driveswithin the disk array storage system includes some blocks for storingdata and some blocks for storing parity information. The data and parityinformation is organized into multiple data groups within the array,each data group including a corresponding storage block from each diskdrive. N storage blocks within each data group are utilized to storedata and two storage blocks within each data group are utilized to storefirst and second components of parity information. The location of thetwo storage blocks utilized to store the first and second components ofparity information varies in the different data groups.

The first parity generating mechanism is employed for calculating thefirst components of parity information, and the second parity generatingmechanism is employed for calculating the second components of parityinformation. Within each data group, the two components of parityinformation are determined so that the exclusive-OR combination of thefirst and second components is equivalent to the exclusive-ORcombination of the data stored in the corresponding storage blocksacross the remaining data disk drives.

The above objects and other objects, features, and advantages of thepresent invention will become apparent from the following detailedspecification when read in conjunction with the accompanying drawings inwhich applicable reference numerals have been carried forward.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram representation of a network including a sharedRAID level 4 disk array storage system including four disk drives forthe storage of data and an additional disk drive for the storage ofparity information in accordance with the prior art.

FIG. 2 is a block diagram representation of a network including a sharedRAID level 4 disk array storage system including four disk drives forthe storage of data and two additional disk drives for the storage ofparity information in accordance with the present invention.

FIG. 3 is a block diagram representation of a network including a sharedRAID level 5 disk array storage system including five disk drives forthe storage of data and parity information in accordance with the priorart.

FIG. 4 is a block diagram representation of a network including a sharedRAID level 5 disk array storage system including six disk drives for thestorage of data and parity information in accordance with the presentinvention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT RAID Level 4 Disk ArrayImplementation

FIG. 1 illustrates a RAID level 4 disk array storage system 101 utilizedas a shared storage device accessible by two or more network servers 103and 105. The RAID level 4 disk array storage system 101 includes fourdisk drives for the storage of data, identified as DRIVE A through DRIVED, and an additional disk drive for the storage of parity information,identified as DRIVE E.

As shown in FIG. 1, the data stored within RAID level 4 disk arraysystem 101 is saved horizontally across the disk drives, i.e.,successive data blocks are stored in successive disk drives. Data iswritten in blocks across disk drives DRIVE A through DRIVE D. Parityinformation is calculated by performing a bit-wise exclusive-OR ofcorresponding data blocks from disk drives DRIVE A through DRIVE D, orthrough a read-modify-write operation, then saved to a correspondingstorage block on disk drive RIVE E. The exemplary RAID level 4 arraystorage system of FIG. 1 provides storage for twenty data blocks of dataorganized into five data groups. The data groups, identified as DataGroup 0 through Data Group 4, each provide for the storage of four datablocks and one parity block. The data blocks, numbered 0 through 19, areidentified by reference numerals A0 through D4. Parity blocks areidentified by reference numerals P0 through P4.

Parity information is calculated by performing a bit-wise exclusive-ORof corresponding data blocks stored across the four data drives, orthrough the read-modify-write (RMW) operation discussed above.

Although only five data groups and twenty data blocks are illustrated,it should be understood that an array storage system utilizing currentmagnetic disk drives, such as the Western Digital Corporation WD CaviarAC36400 disk drive described above, is capable of storing millions ofdata blocks.

The single dedicated parity disk, DRIVE E, within the disk array storagesystem 101 can severely limit the performance of the storage systemduring concurrent write operations or data reconstruction activitiessince all write and data reconstruction operations require access to thesingle parity drive. The improved disk array storage system illustratedin FIG. 2 greatly reduces the bottlenecks resulting from the use of asingle dedicated parity disk in a RAID level 4 disk array storagesystem.

The system depicted in FIG. 2 is similar to that illustrated in FIG. 1:a disk array storage system 101 utilized as a shared storage deviceaccessible by two or more network servers 103 and 105. The disk arraystorage system 101 includes four disk drives for the storage of data,identified as DRIVE A through DRIVE D, but in contrast to the system ofFIG. 1, the system depicted in FIG. 2 includes two disk drives for thestorage of parity information, identified as DRIVE E and DRIVE F.

The disk array storage system illustrated in FIG. 2 provides storage fortwenty data blocks of data organized into five data groups. The datagroups, identified as Data Group 0 through Data Group 4, each providefor the storage of four data blocks and two parity blocks. The datablocks, numbered 0 through 19, are identified by reference numerals A0through D4. Parity blocks are identified by reference numerals P₁ 0through P₁ 4 and P₂ 0 through P₂ 4.

Parity information saved to DRIVE E, i.e., P₁ 0 through P₁ 4, iscalculated by server 103, while parity information saved to DRIVE F,i.e., P₂ 0 through P₂ 4, is calculated by server 105. Each server isresponsible for updating its component of parity information forspecific data modifications. For example, server 103, might beresponsible for the parity generations associated with all datamodifications originating with server 103, while server 105 would beresponsible for the parity generations associated with all datamodifications originating with server 105. Other methods for determiningwhich server has responsibility for which data modifications andassociated parity updates should be readily apparent to those skilled inthe art. Each server determines parity through the read-modify-writeoperation as follows:

new parity P₁X=old data⊕new data⊕old parity P₁X; and

new parity P₂X=old data⊕new data⊕old parity P₂X;

where parity P₁ is the parity information component saved to DRIVE E,parity P₂ is the parity information component saved to DRIVE F, and Xrepresents the data group for which parity is calculated.

Initially, all data disks and both parity disks will contain all zerosdata. Alternatively, the array may preloaded with data, in which caseparity will need to be calculated and written to one of the two paritydisks, the other disk containing all zeros. Over time, however, as eachserver writes new data and parity to the disk array storage system 101,neither parity information component P₁ or P₂ individually willrepresent the parity value determined by performing a bit-wiseexclusive-OR of corresponding data blocks stored across the four datadrives. However, because the exclusive-OR operation utilized tocalculate parity is both associative and commutative, the completeparity for the disk array storage system can be determined byexclusive-ORing corresponding parity blocks from DRIVE E and DRIVE F.The complete parity for any data group X can be determined from thefollowing equation:

parity P=P₁X⊕P₂X.

RAID Level 5 Disk Array Implementation

FIG. 3 illustrates a RAID level 5 disk array storage system 201 utilizedas a shared storage device accessible by two or more network servers 203and 205. The RAID level 5 disk array storage system 201 includes fivedisk drives for the storage of data and parity information, identifiedas DRIVE A through DRIVE E.

As shown in FIG. 3, the exemplary RAID level 5 array storage providesstorage for twenty data blocks of data organized into five data groups.The data groups, identified as Data Group 0 through Data Group 4, eachprovide for the storage of four data blocks and one parity block. Thedata blocks, numbered 0 through 19, are identified by reference numeralsA0 through E4. Parity blocks are identified by reference numerals P0through P4.

The location in which data and parity information are stored within thedata groups varies from data group to data group. For example, in DataGroup 0 data blocks A0, B0, C0 and D0 are stored on drives DRIVE Athrough DRIVE D and parity information P0 is saved on drive DRIVE E.However in Data Group 1 data blocks A1, B1, C1 and E1 are stored ondrives DRIVE A, DRIVE B, DRIVE C, and DRIVE E, respectively, and parityinformation P1 is saved on drive DRIVE D. Within each data group, parityinformation is calculated by performing a bit-wise exclusive-OR ofcorresponding data blocks, or through the read-modify-write (RMW)operation. By varying the location of the parity information anddistributing the parity information equally across the disk driveswithin the array, the primary shortcoming of the RAID level 4 disk arraydesign, i.e., contention for access to the single dedicated parity disk,is greatly reduced.

Although only five data groups and twenty data blocks are illustrated,it should be understood that an array storage system utilizing currentmagnetic disk drives, such as the Western Digital Corporation WD CaviarAC36400 disk drive described above, is capable of storing millions ofdata blocks.

FIG. 4 illustrates an improvement to the RAID level 5 disk array systemshown in FIG. 3. The system illustrated in FIG. 4 differs from thesystem shown in FIG. 3 by including six disk drives for the storage ofdata and parity information, identified as DRIVE A through DRIVE F,rather than five disk drives, as shown in FIG. 3.

The disk array storage system illustrated in FIG. 4 provides storage fortwenty data blocks of data organized into five data groups. The datagroups, identified as Data Group 0 through Data Group 4, each providefor the storage of four data blocks and two parity blocks. The datablocks, numbered 0 through 19, are identified by reference numerals A0through F4. Parity blocks are identified by reference numerals P₁ 0through P₁ 4 and P₂ 0 through P₂ 4.

As in the system shown in FIG. 3, the location in which data and parityinformation are stored within the data groups varies from data group todata group. For example, in Data Group 0 data blocks A0, B0, C0 and D0are stored on drives DRIVE A through DRIVE D and parity informationcomponents P₁ 0 and P₂ 0 are saved on drives DRIVE E and DRIVE F.However in Data Group 2 data blocks A1, B1, C1 and F1 are stored ondrives DRIVE A, DRIVE B, DRIVE C, and DRIVE F, respectively, whileparity information components P₁ 1 and P₂ 1 are saved on drives DRIVE Dand DRIVE E.

Parity information components P₁ 0 through P₁ 4, are calculated byserver 203, while parity information components P₂ 0 through P₂ 4, iscalculated by server 205. Each server is responsible for updating itspiece of parity information for specific data modifications. Forexample, server 203, might be responsible for the parity generationsassociated with all data modifications originating with server 203,while server 205 would be responsible for the parity generationsassociated with all data modifications originating with server 205.Other methods for determining which server has responsibility for whichdata modifications and associated parity updates should be readilyapparent to those skilled in the art. Each server determines paritythrough the read-modify-write operation as follows:

new parity P₁X=old data⊕new data⊕old parity P₁X; and

new parity P₂X=old data⊕new data⊕old parity P₂X;

where parity P₁ is the parity information component determined by server203, parity P₂ is the parity information component calculated by server205, and X represents the data group for which parity is calculated.

Initially, all disks within the array will contain all zeros.Alternatively, the array may preloaded with data, in which case paritywill need to be calculated and written to one of the two groups ofparity data blocks, i.e., P₁X or P₂X, the other group of data blockscontaining all zeros. Over time, however, as each server writes new dataand parity to the disk array storage system 101, neither parityinformation component P₁ or P₂ individually will represent the parityvalue determined by performing a bit-wise exclusive-OR of correspondingdata blocks stored within a data group. However, because theexclusive-OR operation utilized to calculate parity is both associativeand commutative, the complete parity for the disk array storage systemcan be determined by exclusive-ORing corresponding parity blocks withinthe data groups. The complete parity for any data group can bedetermined from the following equation:

parity P=P₁X⊕P₂X.

SUMMARY

It can thus be seen that there has been provided by the presentinvention a new and useful method for calculating and storing data andparity information within a RAID level 4 or 5 disk array storage system.The above-described method extends the parity generating mechanismwithin the array to encompass multiple parity pieces rather than thesingle piece currently in use. Multiple parity pieces permits each pieceto be assigned to a given parity generator/writer. This organizationreduces the coordination required to maintain parity and increases arrayand system performance by reducing overhead and lock contention.

Those skilled in the art will recognize that the invention is notlimited to the specific embodiments described above and that numerousmodifications and changes are possible without departing from the scopeof the present invention. For example, although the above detaileddescription describes disk array systems including a total of six diskdrives for the storage of data and parity information, a greater numberof drives may be utilized to store data and parity within the diskarray. In such a system more than two additional drives may be providedto store components of parity information, with a corresponding numberof processing nodes responsible for maintaining parity information.Also, in the RAID 5 disk array implementation described above, themanner in which parity information storage blocks is distributedthroughout the multiple disk drives may differ from that shown.

These and other variations, changes, substitution and equivalents willbe readily apparent to those skilled in the art without departing fromthe spirit and scope of the present invention. Accordingly, it isintended that the invention to be secured by Letters Patent be limitedonly by the scope of the appended claims.

What is claimed is:
 1. A disk array storage system wherein data andrelated parity information are stored in corresponding storage blocksacross a plurality of disk drives, said disk array storage systemcomprising: a first disk drive including a storage block for thenon-volatile storage of a first component of parity information; asecond disk drive including a storage block for the non-volatile storageof a second component of parity information; at least two disk drivesincluding corresponding storage blocks for the storage of data; a firstparity generating mechanism for calculating said first component ofparity information stored on said first disk drive; and a second paritygenerating mechanism for calculating said second component of parityinformation stored on said second disk drive; wherein the exclusive-ORcombination of said first component of parity information with saidsecond component of parity information is equivalent to the exclusive-ORcombination of the data stored within the corresponding storage blocksof said at least two disk drives.
 2. The disk array storage system inaccordance with claim 1, wherein: said disk array storage system isshared by a first processing node and a second processing node; saidfirst parity generating mechanism for calculating said first componentof parity information is included in said first processing node; andsaid second parity generating mechanism for calculating said secondcomponent of parity information is included in said second processingnode.
 3. The disk array storage system in accordance with claim 2,wherein: said first processing node processes a first group of processesperforming updates on said data stored in said at least two disk drivesincluding corresponding storage blocks for the storage of data; and saidsecond processing node processes a second group of processes performingupdates on said data stored in said at least two disk drives includingcorresponding storage blocks for the storage of data.
 4. The disk arraystorage system in accordance with claim 2, wherein: said firstprocessing node utilizes a read-modify-write procedure to update saiddata and said first component of parity information; and said secondprocessing node utilizes a read-modify-write procedure to update saiddata and said second component of parity information.
 5. A computersystem comprising: a first processing node; a second processing node;and a disk array storage system shared by said first and second servers,said disk array storage system including: a first disk drive including astorage block for the non-volatile storage of a first component ofparity information; a second disk drive including a storage block forthe non-volatile storage of a second component of parity information; atleast two disk drives including corresponding storage blocks for thestorage of data; a first parity generating mechanism included in saidfirst processing node for calculating said first component of parityinformation stored on said first disk drive; and a second paritygenerating mechanism included in said second processing node forcalculating said second component of parity information stored on saidsecond disk drive; wherein the exclusive-OR combination of said firstcomponent of parity information with said second component of parityinformation is equivalent to the exclusive-OR combination of the datastored within the corresponding storage blocks of said at least two diskdrives.
 6. The computer system in accordance with claim 5, wherein: saidfirst processing node processes a first group of processes performingupdates on said data stored in said at least two disk drives includingcorresponding storage blocks for the storage of data; and said secondprocessing node processes a second group of processes performing updateson said data stored in said at least two disk drives includingcorresponding storage blocks for the storage of data.
 7. In a disk arraystorage system wherein data is stored in corresponding storage blocksacross a plurality of disk drives, a method for calculating and storingparity information, said method comprising the steps of: providing afirst disk drive for the non-volatile storage of parity information,said first disk drive including a storage block corresponding to thestorage blocks included in said plurality of disk drives; providing afirst parity generation mechanism for calculating a first component ofparity information, storing said first component of parity informationin said storage block on said first disk drive; providing a second diskdrive for the non-volatile storage parity information; said second diskdrive including a storage block corresponding to the storage blocksincluded in said plurality of disk drives and said first disk drive; andproviding a second parity generation mechanism for calculating a secondcomponent of parity information, and storing said second component ofparity information in said storage block on said second disk drive;wherein the exclusive-OR combination of said first component of parityinformation with said second component of parity information isequivalent to the exclusive-OR combination of the data stored within thecorresponding storage blocks of said at least two disk drives.
 8. Themethod for calculating and storing parity information in accordance withclaim 7, further comprising the steps of: updating said data and saidfirst component of parity information in response to one of a firstgroup of processes; and updating said data and said second component ofparity information in response to one of a second group of processes. 9.The method for calculating and storing parity information in accordancewith claim 8, wherein: said disk array storage system is shared by afirst processing node and a second processing node; said step ofupdating said data and said first component of parity information inresponse to one of a first group of processes is performed by said firstprocessing node; and said step of updating said data and said secondcomponent of parity information in response to one of a second group ofprocesses is performed by said second processing node.
 10. The methodfor calculating and storing parity information in accordance with claim8, wherein: said step of updating said data and said first component ofparity information in response to one of a first group of processesincludes the execution of a read-modify-write procedure; and said stepof updating said data and said second component of parity information inresponse to one of a second group of processes includes the execution ofa read-modify-write procedure.
 11. A disk array storage systemcomprising: a plurality of disk drives for the storage of data andparity information, said data and parity information being stored inmultiple data groups within a plurality of disk drives, each data groupcontaining a corresponding storage block from each disk drive withinsaid plurality of disk drives; each data group including a first storageblock for the non-volatile storage of a first component of parityinformation, a second storage block for the non-volatile storage of asecond component of parity information, and at least two storage blocksfor the storage of data; a first parity generating mechanism fordetermining said first component of parity information; and a secondparity generating mechanism for determining said second component ofparity information stored; wherein the exclusive-OR combination of saidfirst component of parity information with said second component ofparity information is equivalent to the exclusive-OR combination of thedata stored within the corresponding storage blocks of said at least twodisk drives.
 12. The disk array storage system in accordance with claim11, wherein: said disk array storage system is shared by a firstprocessing node and a second processing node; said first paritygenerating mechanism for calculating said first component of parityinformation is included in said first processing node; and said secondparity generating mechanism for calculating said second component ofparity information is included in said second processing node.
 13. Thedisk array storage system in accordance with claim 12, wherein: saidfirst processing node processes a first group of processes performingupdates on said data stored in said at least two storage blocks for thestorage of data; and said second processing node processes a secondgroup of processes performing updates on said data stored in said atleast two disk drives including corresponding storage blocks for thestorage of data.
 14. The disk array storage system in accordance withclaim 13, wherein: said first processing node utilizes aread-modify-write procedure to update said data and said first componentof parity information; and said second processing node utilizes aread-modify-write procedure to update said data and said secondcomponent of parity information.
 15. The disk array storage system inaccordance with claim 11, wherein: the disk drive on which said firststorage block resides and the disk drive on which said second storageresides varies in the multiple data groups.
 16. The disk array storagesystem in accordance with claim 15, wherein: said disk array storagesystem is shared by a first processing node and a second processingnode; said first parity generating mechanism for calculating said firstcomponent of parity information is included in said first processingnode; and said second parity generating mechanism for calculating saidsecond component of parity information is included in said secondprocessing node.
 17. The disk array storage system in accordance withclaim 16, wherein: said first processing node processes a first group ofprocesses performing updates on said data stored in said at least twostorage blocks for the storage of data; and said second processing nodeprocesses a second group of processes performing updates on said datastored in said at least two disk drives including corresponding storageblocks for the storage of data.
 18. The disk array storage system inaccordance with claim 17, wherein: said first processing node utilizes aread-modify-write procedure to update said data and said first componentof parity information; and said second processing node utilizes aread-modify-write procedure to update said data and said secondcomponent of parity information.
 19. A method for storing data andparity information in a disk array, said method comprising the steps of:providing a plurality of disk drives for the storage of data and parityinformation, said data and parity information being stored in multipledata groups within said plurality of disk drives, each data groupcontaining a corresponding storage block from each disk drive withinsaid plurality of disk drives, each data group including a first storageblock for the nonvolatile storage of a first component of parityinformation, a second storage block for the non-volatile storage of asecond component of parity information, and at least two storage blocksfor the storage of data; providing a first parity generation mechanismfor calculating said first component of parity information; providing asecond parity generation mechanism for calculating said second componentof parity information; varying the location of said first storage blockand said second storage among the plurality of disk drives in differentones of said multiple data groups; and within each data group:determining said first component of parity information, storing saidfirst component of parity information in said first storage block;determining said second component of parity information, and storingsaid second component of parity information in said second storageblock; wherein the exclusive-OR combination of said first component ofparity information with said second component of parity information isequivalent to the exclusive-OR combination of the data stored within thecorresponding storage blocks of said at least two disk drives.
 20. Themethod for calculating and storing parity information in accordance withclaim 19, further comprising the steps of: updating said data and saidfirst component of parity information within a data group in response toone of a first group of processes; and updating said data and saidsecond component of parity information within a data group in responseto one of a second group of processes.
 21. The method for calculatingand storing parity information in accordance with claim 20, wherein:said disk array storage system is shared by a first processing node anda second processing node; said step of updating said data and said firstcomponent of parity information within a data group in response to oneof a first group of processes is performed by said first processingnode; and said step of updating said data and said second component ofparity information within a data group in response to one of a secondgroup of processes is performed by said second processing node.
 22. Themethod for calculating and storing parity information in accordance withclaim 20, wherein: said step of updating said data and said firstcomponent of parity information within a data group in response to oneof a first group of processes includes the execution of aread-modify-write procedure; and said step of updating said data andsaid second component of parity information within a data group inresponse to one of a second group of processes includes the execution ofa read-modify-write procedure.